//webpakc公共配置文件
const path = require('path')
const webpack = require('webpack');
// const CleanWebpackplugin = require('clean-webpack-plugin')//导入清理dist文件插件
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const HtmlWebpackPlugin = require('html-webpack-plugin')//导入打包自动生成index.html文件插件

module.exports = {
  //入口文件
  entry: {
    app: './src/index.js',
    // another: './src/another-module.js'//这里多写一个就可以多拆分一个
  },
  //防止重复
  // optimization: {
  //   //SplitChunksPlugin 插件可以将公共的依赖模块提取到已有的 entry chunk 中，或者提取到一个新生成的 chunk。让我们使用这个插件，将前面示例中重复的 lodash 模块去除
  //   splitChunks: {
  //     chunks: 'all'
  //   }
  // },
  optimization: {
    runtimeChunk: 'single',
    splitChunks: {
      cacheGroups: {
        vendor: {
          test: /[\\/]node_modules[\\/]/,
          name: 'vendor',
          chunks: 'all'
        }
      }
    }
  },
  //输出配置
  plugins: [
    new CleanWebpackPlugin(),//配置清理dist文件夹
    //index.html文件标题
    new HtmlWebpackPlugin({
      title: '生产配置'
    }),
    new webpack.HashedModuleIdsPlugin()
  ],
  //输出文件配置
  output: {
    // filename: '[name].bulid.js',//输出文件名
    filename: '[name].[contenthash].js',//输出文件名
    path: path.resolve(__dirname, 'dist'),//输出路径
    chunkFilename: '[name].bundle.js'//配置动态导入的输出
  }
}